Software quality management
Definitions
- The aim of Software Quality Management (SQM) is to manage the quality of software and of its development process.
- A quality product is one which meets its requirements and satisfies the user
- A quality culture is an organizational environment where quality is viewed as everyone’s responsibility.
Introduction
Integrating SQM into the development lifecycle from day 1 is a way to ensure the successful development of a quality product.
Description
The computer scientist Ian Sommerville[1] uses SQM as an umbrella-term that includes the following quality layers:
- Software Quality Assurance (SQA) layer
An Organizational quality guide of
- Standards, regulations, and procedures to produce, verify, evaluate and confirm work products during the software development lifecycle
- Incorporated knowledge base of best practices
- Off-the-shelf software tools selected to apply the above
- Software Quality Plan (SQP) layer
A project level quality plan written by each project for declaring project commitment to follow an applicable set of standards, regulations, procedures and tools during the development lifecycle. In addition, SQP should contain quality goals to be achieved, expected risks and risk management. SQP sources are derived from
- SQA components that are adopted as is or customized to the project's needs
- New procedures, standards and tools complementing missing or not-applicable SQA components that have been written in particular for the project, or imported from outside the organization.
Any deviation of an SQP from SQA should be justified by the project manager and be confirmed
by the company management.
- Software Quality Control (SQC) layer
Ensures in-process that both SQA and SQP are being followed by the development teams.
SQC activities include
- Mentoring how to produce artifacts, such as well-defined engineering documents using standard templates
- Mentoring how to conduct standard processes, such as quality reviews
- Perform in-process quality reviews to verify, evaluate and confirm artifacts
- Verify and evaluate to improve the use of methods, procedures and adopted software tools
SQM Roles
- to ensure that the required level of quality is achieved in a software product
- to encourage a company-wide "Quality Culture" where quality is viewed as everyone’s responsibility
- to reduce the learning curve and help with continuity in case team members change positions within the organization
- to enable in-process fault avoidance and fault prevention through proper development
Many people use the terms SQM and SQA (Software quality assurance) interchangeably.
References
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
- ^ Ian Sommerville (2004), Software Engineering, 7th ed., chapter 27